﻿#define _CRT_SECURE_NO_WARNINGS



//类与对象（中）

//拷贝构造函数

//#include <iostream>
//using namespace std;
//
//
//class Date
//{
//public:
//	int year;
//	int month;
//	int day;
//	Date(int _year,int _month,int _day)
//	{
//		year = _year;
//		month = _month;
//		day = _day;
//	}
//	//Date(Date& d)//拷贝构造
//	//{
//	//	year = d.year;
//	//}
//};
//
//
////浅拷贝：直接拷贝，没有资源就可以使用浅拷贝，一个字节一个字节拷贝
////Myqueue和Stack需要自己写析构和构造函数，拷贝构造
////要进行自己拷贝构造则要进行深拷贝
//
//
////引用的底层是指针
//
////传引⽤返回可以减少拷⻉，但是⼀定要确保返回对象，在当前函数结束后还在，才能⽤引⽤返回
//
//
//int main()
//{
//	Date d1(2025,4,24);
//	return 0;
//}



//运算符重载
//#include <iostream>
//using namespace std;
//
//class Date
//{
//private:
//	int _year;
//	int _month;
//	int _day;
//public:
//	/*int _year;
//	int _month;
//	int _day;*/
//	Date(int year = 1, int month = 1, int day = 1)
//	{
//		this->_year = year;
//		this->_month = month;
//		this->_day = day;
//	}
//	//friend bool operator==(Date d1, Date d2);
//};
//
//bool operator==(const Date& d1,const Date& d2)
//{
//	return d1._year == d2._year
//		&& d1._month == d2._month
//		&& d1._day == d2._day;
//
//}
//
//
//int main()
//{
//	int i = 1, j = 2;
//	bool ret1 = i < j;
//	i++;
//
//	Date d1(2025, 4, 24);
//	Date d2(2025, 4, 26);
//
//	d1 == d2;
//	return 0;
//}



#include <iostream>

using namespace std;

class Date
{
private:
	int _year;
	int _month;
	int _day;
public:
	/*int _year;
	int _month;
	int _day;*/
	Date(int year = 1, int month = 1, int day = 1)
	{
		cout << "Date(int year = 1, int month = 1, int day = 1)" << endl;
		_year = year;
		_month = month;
		_day = day;
	}
	friend bool operator==(Date d1, Date d2);
};

bool operator==(const Date& x )
{
	return _year == x._year
		&& _month == x._month
		&& _day == x._day;

}


int main()
{
	//int i = 1, j = 2;
	//bool ret1 = i < j;
	//i++;

	Date d1(2025, 4, 24);
	Date d2(2025, 4, 26);

	d1 == d2;
	return 0;
}


